package com.lifeverse.dto;

import com.lifeverse.entity.LifeEntityRelationship;
import jakarta.validation.constraints.*;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 更新生命体关系的数据传输对象
 */
@Data
public class LifeEntityRelationshipUpdateDTO {
    
    private LifeEntityRelationship.RelationshipType relationshipType;
    
    private LifeEntityRelationship.RelationshipStatus relationshipStatus;
    
    @DecimalMin(value = "0.00", message = "关系强度不能小于0")
    @DecimalMax(value = "100.00", message = "关系强度不能大于100")
    private BigDecimal relationshipStrength;
    
    @DecimalMin(value = "0.00", message = "关系质量不能小于0")
    @DecimalMax(value = "100.00", message = "关系质量不能大于100")
    private BigDecimal relationshipQuality;
    
    @DecimalMin(value = "0.00", message = "信任度不能小于0")
    @DecimalMax(value = "100.00", message = "信任度不能大于100")
    private BigDecimal trustLevel;
    
    @DecimalMin(value = "0.00", message = "互动频率不能小于0")
    private BigDecimal interactionFrequency;
    
    @Size(max = 500, message = "描述长度不能超过500字符")
    private String description;
    
    @Size(max = 200, message = "标签长度不能超过200字符")
    private String tags;
    
    private String attributes;
    
    private String interactionStats;
    
    @DecimalMin(value = "-100.00", message = "影响评分不能小于-100")
    @DecimalMax(value = "100.00", message = "影响评分不能大于100")
    private BigDecimal impactScore;
    
    private Boolean isBidirectional;
    
    @DecimalMin(value = "0.0001", message = "网络权重不能小于0.0001")
    @DecimalMax(value = "100.0000", message = "网络权重不能大于100")
    private BigDecimal networkWeight;
}